package com.unitd.modules.sys.dao;

import com.unitd.frame.mybatis.core.dao.IBaseDao;
import com.unitd.modules.sys.entity.SysOrg;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @desc 系统机构信息表DAO接口
 * @filename ISysOrgDao.java
 * @copyright www.unitd.com
 * @author Hudan
 * @version 1.0
 * @date  2017-05-23
 */
public interface ISysOrgDao extends IBaseDao<SysOrg, String> {

	/**
	 * @desc 获取单条数据
	 * @param id 主键ID
	 * @return
	 */
	SysOrg findBy(@Param("id") String id);

	/**
	 * @desc 根据条件查询获取系统机构信息
	 * @param SysOrg  查询条件
	 * @return
	 */
	List<SysOrg> findListBy(SysOrg SysOrg);

	/**
	 * @desc 根据条件查询获取系统机构信息
	 * @return
	 */
	List<SysOrg> findAllData();

	/**
	 * @desc 获取单条数据
	 * @param orgNo 机构编号
	 * @return
	 */
	SysOrg findByNo(@Param("orgNo") String orgNo);

	/**
	 * @desc 根据父机构，查询子机构
	 * @param parentNo 父机构编号
	 */
	List<SysOrg> findListByParentNo(@Param("parentNo") String parentNo);

	/**
	 * @desc 根据选择的父机构编号获取该父机构下的机构最大sort值并+1
	 * @param parentNo 父机构编号
	 * @return
	 */
	Integer getMaxSortByPNo(@Param("parentNo") String parentNo);

	/**
	 * @desc 获取即将新增的记录的主键ID值
	 * @return
	 */
	String getPrePrimaryKey();

	/**
	 * @desc 根据参数信息,逻辑删除对象信息
	 * @param entity 删除参数对象
	 */
	int deleteByDelFlag(SysOrg entity);
}